#ifndef __PID_H_
#define __PID_H_
/*PID调节器*/
#include "myconfig.h"
typedef struct{
	
	int setValue; 	//设定目标
	int kp;        //比例常数
	int ki;   			//积分常数
	int kd;				//微分常数
	
	int lastError;	//Error[-1]
	int prevError;	//Error[-2]
	int sumError;	//误差累加
	
	int limit;		//限制值
	
}PIDTypeDef;

void PID_Init(PIDTypeDef *pidRegulator,int setValue,int limit,int kp,int ki,int kd);
int positionPIDCalc_LimitSumError(PIDTypeDef *p, int nextValue);// 位置式PID，限制误差累加,新增的
int incrementalPIDcalc(PIDTypeDef *p, int nextValue);  // 增量式PID
int positionPIDCalc(PIDTypeDef *p,int nextValue);			//位置式PID
int positionPIDCalc_rotAngle(PIDTypeDef *p,int err);  // 旋转用的位置式PID
#endif // !__PID_H_
